/**
 * 
 */
package co.com.ebusiness.trader.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.apache.tapestry5.beaneditor.NonVisual;
import org.apache.tapestry5.beaneditor.Validate;

import co.com.ebusiness.trader.core.model.Empresa;
import co.com.ebusiness.trader.utilidades.model.TipoIdentificacion;

/**
 * @author Luis Agudelo
 *
 */
@Entity
@Table(name = "trd_proveedores")
public class Proveedor implements java.io.Serializable {

        private int idProv;
        private TipoIdentificacion tipoIdentificacion;
        private String identificacion;
        private String nombre;
        private String direccion;
        private String email;
        private String telefono;
        private Empresa empresa;
        
        @Id
        @GeneratedValue
        @Column(name = "idProv")
        @NonVisual
        public int getIdProv() {
                return this.idProv;
        }

        public void setIdProv(int idProv) {
                this.idProv = idProv;
        }

       /**
		 * @return the tipoIdentificacion
		 */
        @Column(name = "tipoIdentificacion", nullable = false, length = 2)
        @Validate("required")
        @Enumerated(EnumType.STRING)
		public TipoIdentificacion getTipoIdentificacion() {
			return tipoIdentificacion;
		}

		/**
		 * @param tipoIdentificacion the tipoIdentificacion to set
		 */
		public void setTipoIdentificacion(TipoIdentificacion tipoIdentificacion) {
			this.tipoIdentificacion = tipoIdentificacion;
		}

		/**
		 * @return the identificacion
		 */
		@Validate("required")
		public String getIdentificacion() {
			return identificacion;
		}

		/**
		 * @param identificacion the identificacion to set
		 */
		public void setIdentificacion(String identificacion) {
			this.identificacion = identificacion;
		}

		/**
		 * @return the nombre
		 */
		@Validate("required")
		public String getNombre() {
			return nombre;
		}

		/**
		 * @param nombre the nombre to set
		 */
		public void setNombre(String nombre) {
			this.nombre = nombre;
		}

		/**
		 * @return the direccion
		 */
		public String getDireccion() {
			return direccion;
		}

		/**
		 * @param direccion the direccion to set
		 */
		public void setDireccion(String direccion) {
			this.direccion = direccion;
		}

		/**
		 * @return the email
		 */
		public String getEmail() {
			return email;
		}

		/**
		 * @param email the email to set
		 */
		public void setEmail(String email) {
			this.email = email;
		}

		/**
		 * @return the telefono
		 */
		public String getTelefono() {
			return telefono;
		}

		/**
		 * @param telefono the telefono to set
		 */
		public void setTelefono(String telefono) {
			this.telefono = telefono;
		}

		/**
		 * @return the empresa
		 */
		@ManyToOne(fetch=FetchType.LAZY)
		@JoinColumn(name="idEmp")
		@NonVisual
		public Empresa getEmpresa() {
			return empresa;
		}

		/**
		 * @param empresa the empresa to set
		 */
		public void setEmpresa(Empresa empresa) {
			this.empresa = empresa;
		}
		
		

}